package com.wlyuan.open.dto;

import com.wlyuan.open.OpenBaseSyncDTO;
import com.wlyuan.open.dto.combine.CombineCloseDTO;
import com.wlyuan.open.dto.order.OrderTransportDTO;
import com.wlyuan.open.dto.transport.TransportPriceDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author lijing
 * @description
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class OpenCombineSyncDTO extends OpenBaseSyncDTO implements Serializable {
    private static final long serialVersionUID = 8087352021198286921L;
    private Long combineId;

    @ApiModelProperty("拼车单子单集合")
    private List<Long> transportIds;
    @ApiModelProperty("拼车单号")
    private String orderNo;
    @ApiModelProperty("拼车单合同号")
    private String contractNo;
    @ApiModelProperty("发货时间")
    private LocalDateTime fromTime;
    @ApiModelProperty("到货时间")
    private LocalDateTime toTime;
    @ApiModelProperty("调度人")
    private Long dispatchBy;
    @ApiModelProperty("调度时间")
    private LocalDateTime dispatchAt;
    @ApiModelProperty("接收人")
    private Long acceptBy;
    @ApiModelProperty("接收时间")
    private LocalDateTime acceptAt;
    @ApiModelProperty("拼车单状态 10 待调度 20 已委托 30 已完成")
    private Integer status;
    @ApiModelProperty("创建人")
    private Long createBy;
    @ApiModelProperty("创建时间")
    private LocalDateTime createAt;
    @ApiModelProperty("修改人")
    private Long updateBy;
    @ApiModelProperty("修改时间")
    private LocalDateTime updateAt;
    @ApiModelProperty("备注")
    private String desc;
    @ApiModelProperty("合单类型 0 普通合单 1 零担合单 2 整车合单")
    private Integer type;

    @ApiModelProperty("设备类型 1 电子回单  2快递")
    private Integer trackType;
    @ApiModelProperty("设备编号/快递号")
    private String deviceCode;
    @ApiModelProperty("运输信息")
    private List<OrderTransportDTO> transports;

    @ApiModelProperty("客户ID")
    private Long customerId;
    @ApiModelProperty("客户类型")
    private Integer customerType;
    @ApiModelProperty("客户姓名")
    private String customerName;
    @ApiModelProperty("客户租户")
    private Long customerTenantId;

    @ApiModelProperty("承运方ID")
    private Long carrierId;
    @ApiModelProperty("承运方类型")
    private Integer carrierType;
    @ApiModelProperty("承运商名称")
    private String carrierName;
    @ApiModelProperty("承运商联系人")
    private String carrierContactName;
    @ApiModelProperty("承运商电话")
    private String carrierPhone;
    @ApiModelProperty("承运方租户")
    private Long carrierTenantId;

    @ApiModelProperty("关闭信息")
    private CombineCloseDTO close;
    @ApiModelProperty("费用信息")
    private TransportPriceDTO cost;
}

